package com.bw.controller;

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.bw.service.WeekService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;


@RestController
public class WeekController {
    //注入业务层
    @Autowired
    WeekService weekService;

    //10）使用存储过程求出订单的总成交金额（sql语句）（5分）
    //完成订单的总成交金额的数字翻牌器（5分）
    @RequestMapping("/findPro")
    public Object findPro(){
        //拿到数据库的数据
        List<Map> list = weekService.findPro();
        //返回大屏所需要的数据
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",0);
        jsonObject.put("msg","");
        jsonObject.put("data",list.get(0).get("total"));
        return jsonObject;
    }

    //11）求出各店铺的好评率(评分为5是好评，sql语句）（5分）
    //19）完成各店铺的好评率的饼状图（5分）
    @RequestMapping("/findHao")
    public Object findHao(){
        //拿到数据库的数据
        List<Map> list = weekService.findHao();
        //返回大屏所需要的数据
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",0);
        jsonObject.put("msg","");
        JSONArray dataArray = new JSONArray();
        for (Map map : list) {
            JSONObject mapObject = new JSONObject();
            mapObject.put("name",map.get("name"));
            mapObject.put("value",map.get("hp"));
            dataArray.add(mapObject);
        }
        jsonObject.put("data",dataArray);
        return jsonObject;
    }

    //12）求出各省份支付总额（sql语句）（5分）
    //20）完成各省份支付总额的省份热力图（5分）
    @RequestMapping("/findProvinceSum")
    public Object findProvinceSum(){
        //拿到数据库的数据
        List<Map> list = weekService.findProvinceSum();
        //返回大屏所需要的数据
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",0);
        jsonObject.put("msg","");
        JSONObject dataObject = new JSONObject();
        JSONArray mapArray = new JSONArray();
        for (Map map : list) {
            JSONObject mapObject = new JSONObject();
            mapObject.put("name",map.get("name"));
            mapObject.put("value",map.get("total"));
            mapArray.add(mapObject);
        }
        dataObject.put("mapData",mapArray);
        dataObject.put("valueName","支付总额");
        jsonObject.put("data",dataObject);
        return jsonObject;
    }

    //13）求出所有已完成支付的订单及其所属店铺和省份信息（sql语句）（5分）
    @RequestMapping("/findXi")
    public Object findXi(){
        return weekService.findXi();
    }

    //14）求出每个省份下拥有下单用户数量（sql语句）（5分）
    @RequestMapping("/findCount")
    public Object findCount(){
        return weekService.findCount();
    }

    //15）求出'Bess Twishes'店铺的订单总额（sql语句）（5分）
    @RequestMapping("/findShopSum")
    public Object findShopSum(String name){
        return weekService.findShopSum(name);
    }
}
